package main

import "fmt"

type Phone interface {
	call()
}

type MiPhone struct {
}

func (miPhone MiPhone) call() {
	fmt.Println("this is mi, I can call you!")
}

type IPhone struct {}

func (iPhone IPhone) call() {
	fmt.Println("this is iPhone, I can call you!")
}

func phone() {
	var phone Phone

	phone = new(MiPhone)
	phone.call()

	phone = new(IPhone)
	phone.call()
}